using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;

/// <summary>
/// 实时时间显示器（TimeDisplay）
/// 适用于 UI 界面中的时间显示，支持 12/24 小时制切换。
/// </summary>
public class TimeDisplay : MonoBehaviour
{
    /// <summary>
    /// 用于显示时间的 TMP_Text 组件
    /// </summary>
    private TMP_Text timeText;

    /// <summary>
    /// 是否使用 12 小时制（默认 24 小时制）
    /// </summary>
    public bool use12HourFormat = false;

    private void Awake()
    {
        // 获取 TMP_Text 组件
        timeText = GetComponent<TMP_Text>();

        if (timeText == null)
        {
            Debug.LogError("TimeDisplay: 未找到 TMP_Text 组件！");
            enabled = false;
            return;
        }
    }

    private void OnEnable()
    {
        InvokeRepeating(nameof(UpdateTime), 0f, 1f); // 每秒更新一次时间
    }

    private void OnDisable()
    {
        CancelInvoke(nameof(UpdateTime)); // 停止更新，避免不必要的消耗
    }

    /// <summary>
    /// 更新时间显示
    /// </summary>
    private void UpdateTime()
    {
        DateTime now = DateTime.Now;
        string timeString = use12HourFormat ? now.ToString("hh:mm:ss tt") : now.ToString("HH:mm:ss");

        timeText.text = timeString;
    }
}